#ifndef SCENEMAIN_H
#define SCENEMAIN_H
#include "../core/scene.h"
class player;
class spawner;
class uiMouse; // 鼠标UI
class hud_stats; // 玩家状态UI
class hudText; // 文本UI
class hudButton; // 按钮UI
class timer; // 计时器
class sceneMain : public scene
{
public:
    sceneMain() = default;
    ~sceneMain() = default;
    virtual void init();
    virtual void clean();
    virtual void render();
    virtual void update(float dt);
    virtual bool handleEvents(SDL_Event& event);
    void updateScore();
    void checkSlowDown(float& dt);
    void checkPause();
    void checkRestart();
    void checkBack();
    void checkEndTime();
    virtual void saveData(const char* filename) override;
private:
    void renderBackground(); // 渲染背景
    player* py = nullptr; // 玩家
    spawner* spawn = nullptr; // 生成器
    uiMouse* mouse = nullptr; // 鼠标
    hud_stats* hub = nullptr; // 玩家状态
    hudText* textScore = nullptr; // 文本
    hudButton* pause = nullptr; // 暂停按钮
    hudButton* restart = nullptr; // 重开按钮
    hudButton* back = nullptr; // 返回按钮
    timer* deadTime = nullptr; // 计时器
};

#endif